home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Jumpstart / Multimedia Microsoft Jumpstart Version 1.1a (Microsoft).BIN / develpmt / sdk / vfw11.win / dev_kit.txt
Encoding:
Text File  |  1994-03-03  |  34.8 KB  |  1,060 lines

  1. ****************************************************************
  2.  
  3.              DEV_KIT.TXT
  4.               
  5.            VIDEO FOR WINDOWS DEVELOPMENT KIT
  6.  
  7. ****************************************************************
  8.  
  9. CONTENTS
  10. ========
  11.  
  12. 1. INSTALLATION NOTES
  13. 2. CONTENTS OF THE VIDEO FOR WINDOWS DEVELOPMENT KIT
  14. 3. ONLINE DOCUMENTATION
  15. 4. USING AUDIO COMPRESSION MANAGER HELP TOPICS
  16. 5. VIDTEST APPLICATION
  17. 6. DISTRIBUTION OF RUNTIME FILES
  18. 7. DISTRIBUTION OF THIRD-PARTY FILES
  19. 8. KNOWN PROBLEMS OR ERRORS
  20. 9. UPDATES TO THE PROGRAMMER'S GUIDE
  21.  
  22.  
  23. 1. INSTALLATION NOTES
  24. =====================
  25. Use the following procedure when installing the Video 
  26. for Windows 1.1 software:
  27.  
  28. 1. Run the Setup program in the \WINVIDEO directory of the 
  29.    development kit disc. This installs the Video for Windows 
  30.    runtime and tools on your system.
  31.  
  32. 2. Run the Setup program in the \VFWDK directory of the 
  33.    development kit disc. This installs the development 
  34.    files on your system.
  35.  
  36. For information on using the capture and editing tools, 
  37. refer to the individual applications' Help files.
  38.  
  39. SETTING UP A DEVELOPMENT SYSTEM
  40. -------------------------------
  41.  
  42. Required Programming Tools
  43. --------------------------
  44. Microsoft C 7.0 or later is required for building the 
  45. C and C++ samples.
  46.  
  47. Microsoft MASM 5.1 is required for building the assembly 
  48. language modules.
  49.  
  50. To edit the Visual Basic samples, you must have Visual 
  51. Basic version 2.0 or later. The custom controls (VBX) 
  52. included with the development kit are compatible with 
  53. Visual Basic 1.0 (as well as Visual C++). 
  54.  
  55. Setting Environment Variables
  56. -----------------------------
  57. The Video for Windows development kit includes header 
  58. and library files needed when using the Video for Window 
  59. programming interfaces. To reference these required 
  60. files, modify your INCLUDE, LIB, and PATH environment
  61. variables as follows:
  62.  
  63. * The INCLUDE variable must reference the INC subdirectory 
  64.   of the development kit directory.
  65.  
  66. * The LIB variable must reference the LIB subdirectory 
  67.   of the development kit directory.
  68.  
  69. In addition, to run the compiled sample files included 
  70. with the development kit, you should modify your PATH 
  71. environment variable to reference the BIN subdirectory 
  72. of the development kit directory.
  73.  
  74. For example, assuming the development kit is installed 
  75. in the default C:\VFWDK directory, you can set the 
  76. environment variables as follows:
  77.  
  78. SET INCLUDE=C:\VFWDK\INC;[previous include line]
  79. SET LIB=C:\VFWDK\LIB;[previous lib line]
  80. SET PATH=C:\VFWDK\BIN;[previous path line]
  81.  
  82. Reading AWM Files Using the Gold Disk File Handler
  83. --------------------------------------------------
  84. To read AWM files using the Gold Disk file handler, 
  85. carry out the following procedure:
  86.  
  87. 1. Add AWMFILE.REG to the registry. To do so, start 
  88.    REGEDIT.EXE, and choose Merge Registration File from 
  89.    the File menu. Choose the AWMFILE.REG file, which is 
  90.    contained in the MISC directory.
  91.  
  92. 2. Make sure the AWMFILE.DLL, AWMFILE2.DLL, and 
  93.    AWMFILE3.TSK files are contained in the SYSTEM directory 
  94.    of your Windows directory.
  95.  
  96. 3. In your WIN.INI file, add the following line to 
  97.    the [MCI EXTENSIONS] section:
  98.  
  99.    awmfile=AVIVideo
  100.  
  101. To play AWM files using MPlayer or any AVI player:
  102.  
  103. 1. Run REGEDIT with the /v switch and choose Add Key from 
  104.    the Edit menu. Specify .AWM for the key and MPlayer 
  105.    for the value.
  106.  
  107.  
  108. 2. CONTENTS OF THE VIDEO FOR WINDOWS DEVELOPMENT KIT
  109. ====================================================
  110.  
  111. DIRECTORIES ON THE CD
  112. ---------------------
  113. The Video for Windows disc includes the following 
  114. directories:
  115.  
  116. Directory       Contents
  117. ---------       -------------------------------------------
  118. MULTILNG        Contains a sample AVI file with multiple
  119.         audio streams. Media Player or any other 
  120.         AVI player can play the English audio track.
  121.         Use the sample application LangPlay to play
  122.         it with the other audio tracks. (Setup will
  123.         add a LangPlay icon to your VFW 1.1 DK 
  124.         Program Manager group.)
  125.  
  126. RUNTIME         Contains the files needed to play back 
  127.         Video for Windows clips. These files 
  128.         include the set of drivers, DLLs, and 
  129.         applications that are installed on an 
  130.         end-user's system. This directory also 
  131.         includes the source files for the
  132.         runtime setup application.
  133.  
  134. VFWDK           Contains the Video for Windows development 
  135.         kit.
  136.  
  137. WINVIDEO        Contains the Video for Windows runtime and 
  138.         tools (video capture and editing).
  139.  
  140.  
  141. DIRECTORIES INSTALLED ON YOUR SYSTEM
  142. ------------------------------------
  143. By default, the Setup routine for the Video for Windows 
  144. runtime and tools creates a C:\WINVIDEO directory on your 
  145. system. This directory contains VidCap and VidEdit. The 
  146. Video for Windows runtime files are installed in your 
  147. Windows SYSTEM directory.
  148.  
  149. By default, the Setup routine for the development kit 
  150. creates a C:\VFWDK directory on your system. This directory 
  151. contains the following subdirectories:
  152.  
  153. Subdirectory    Contents
  154. ------------    -------------------------------------------
  155. ACMHELP         Contains ACM help files that you can build 
  156.         into your application's help file. For more 
  157.         information, see section 4, USING AUDIO 
  158.         COMPRESSION MANAGER HELP TOPICS.
  159.  
  160. BIN             Contains compiled versions of the 
  161.         programming samples, along with system 
  162.         files (VBX, DLL) required to run the samples.
  163.  
  164. DOC             Contains a Microsoft Multimedia Viewer 
  165.         title, the Programmer's Guide. Also 
  166.         contains documentation on custom stream 
  167.         handlers. For more information on the
  168.         Programmer's Guide, see section 3, ONLINE 
  169.         DOCUMENTATION.
  170.  
  171. TOOLS           Contains the following useful tools:
  172.  
  173.         * RIFFWALK, an MS-DOS utility that displays 
  174.           the contents of a RIFF file, with special
  175.           support for AVI and WAV files. Type 
  176.           RIFFWALK -f [filename] to  display AVI or
  177.           WAV headers. Type RIFFWALK to display the
  178.           program's full syntax and parameters.
  179.  
  180.         * UUIDGEN, an MS-DOS OLE 2.0 utility that
  181.           generates globally unique IDs for AVIFile
  182.           handlers.
  183.  
  184.         * DDTEST, a Windows application for testing
  185.           DrawDib functions, display drivers, and 
  186.           installable video codecs.
  187.  
  188.         The DEBUG subdirectory contains debugging
  189.         versions of MSVIDEO.DLL, MSVIDEO.SYM, 
  190.         MSACM.DLL and MSACM.SYM.
  191.  
  192. INC             Contains C header files.
  193.  
  194. LIB             Contains C import libraries.
  195.  
  196. MISC            Contains drivers, custom controls, and
  197.         other useful utilities for Video for
  198.         Windows developers. For information on the
  199.         contents of this directory, see CONTENTS 
  200.         OF THE MISC DIRECTORY below.
  201.  
  202. SAMPLES         Contains a series of programming samples.
  203.         For information on the samples, see 
  204.         SAMPLE APPLICATIONS below.
  205.  
  206.  
  207. CONTENTS OF THE MISC DIRECTORY
  208. ------------------------------
  209. The MISC subdirectory of the Video for Windows development
  210. kit contains a collection of drivers, custom controls, 
  211. file handlers, and other useful tools. The following 
  212. sections describe these files.
  213.  
  214.  
  215. MCI Drivers
  216. -----------
  217. The MISC directory includes the following MCI drivers,
  218. which you can install using the Drivers option of the 
  219. Control Panel.
  220.  
  221. Driver          Description
  222. ------------    --------------------------------------
  223. MCIPIONR.DRV    MCI driver for the Pioneer laserdisc 
  224.         player.
  225.  
  226. MCIPANAS.DRV    MCI driver for the Panasonic laserdisc 
  227.         player.
  228.  
  229. MCIVISCA.DRV    MCI drivers for Sony VISCA devices (VCRs).
  230.         For more information about this driver, 
  231.         consult the documentation for the 
  232.         development kit.
  233.  
  234. To install these drivers, use the Drivers option of the 
  235. Control Panel for adding an unlisted or updated driver.
  236.  
  237.  
  238. Visual Basic Custom Controls
  239. ----------------------------
  240. The MISC directory contains the following Visual Basic 
  241. custom controls (VBXs):
  242.  
  243. Control         Description
  244. ------------    -------------------------------------------
  245. MCIWNDX.VBX     Custom control for playing MCI devices. 
  246.         Provides better support for windowed video 
  247.         devices than the MCI.VBX included with 
  248.         Visual Basic.
  249.  
  250. CAPWNDX.VBX     Custom control for capturing AVI sequences.
  251.  
  252. These custom controls support Visual Basic versions 1.0 
  253. through 3.0, as well as Microsoft Visual C++. For more 
  254. information on these custom controls, consult the 
  255. documentation for the development kit.
  256.  
  257.  
  258. MCI Command Tables
  259. ------------------
  260. The MISC directory contains the following Media Control 
  261. Interface (MCI) command tables:
  262.  
  263. File            Description
  264. ----            -------------------------------------------
  265. DIGITALV.MCI    MCI command-table resource for digital 
  266.         video devices.
  267.  
  268. DIGITALV.RC     Resource script for using the digital video
  269.         command table in a digital-video MCI driver.
  270.  
  271. VCR.MCI         MCI command-table resource for VCR devices.
  272.  
  273. VCR.RC          Resource script for using the VCR command 
  274.         table in a VCR MCI driver.
  275.  
  276.  
  277. File Handlers Used with AVIFile
  278. -------------------------------
  279. The MISC directory contains the following file handlers 
  280. which are used as part of the AVIFile interfaces:
  281.  
  282. File            Description
  283. ----            -------------------------------------------
  284. AWMFILE.DLL     Animation Works Interactive file handler.
  285. AWMFILE.REG     These files are developed and supported by
  286. AWMFILE2.DLL    Gold Disk.
  287. AWMFILE3.TSK
  288.  
  289. FLIFILE.DLL     File handler for Autodesk Animator files.
  290.  
  291.  
  292. SAMPLE APPLICATIONS
  293. -------------------
  294. The development kit includes the following programming
  295. samples:
  296.  
  297. Sample          Description
  298. ---------       -------------------------------------------
  299. ACMAPP          Displays wave file format, and plays, 
  300.         records, and converts wave files.
  301.  
  302. AVICLIP         Reads frame data and copies it onto 
  303.         the Clipboard.
  304.  
  305. AVIEDIT         Simple AVI editing application using the 
  306.         editing APIs in AVIFile.
  307.  
  308. AVIVIEW         Simple AVI viewing application using the 
  309.         read/write APIs in      AVIFile.
  310.  
  311. BRAVADO         Sample capture driver for the Truevision 
  312.         Bravado board.
  313.  
  314. CAPCPP          Sample Visual C++ capture application that
  315.         uses the AVICap capture window class and 
  316.         MCIWnd window class for playback.
  317.  
  318. CAPTEST         Sample capture application that uses the 
  319.         AVICap capture window class.
  320.  
  321. DSEQFILE        AVIFile file handler for DIB sequences. 
  322.         Implemented in C++.
  323.  
  324. ICMAPP          Shows how to call the ICM APIs.
  325.  
  326. ICSAMPLE        Sample of an installable compressor. Good 
  327.         starting point for creating a codec.
  328.  
  329. ICWALK          Sample application that shows all the 
  330.         codecs installed on the system. Uses the
  331.         ICM APIs.
  332.  
  333. IMAADPCM        Sample ACM codec driver.
  334.  
  335. LANGPLAY        Plays back multi-audio stream AVI files.
  336.  
  337. MCIPLAY         Simple video playback application. 
  338.         Uses MCIWnd.
  339.  
  340. MCIPUZZL        Application lets you make a 15-square
  341.         puzzle of a playing video sequence. Shows
  342.         how to use installable draw procedures.
  343.  
  344. MCIVISCA        Sample MCI driver for the VCR command set.
  345.  
  346. MOVPLAY         Simple application for playing movies using
  347.         MCI. Builds two versions, one using 
  348.         mciSendCommand and another
  349.         using mciSendString.
  350.  
  351. MPLAY           Simple AVI playback application. Includes 
  352.         a subset of the features in Media Player 
  353.         and uses the MCIWnd window class.
  354.  
  355. MSFILTER        Audio filter for ACM.
  356.  
  357. MSRLEC          Example of an installable compressor.
  358.         Uses the RLE compression technique.
  359.  
  360. PALMAP          Stream handler that translates video
  361.         streams into new streams of a different
  362.         bit depth--for example, it can  translate 
  363.         from 24-bit to 8-bit.
  364.  
  365. TXTOUT          Text stream draw renderer for rendering 
  366.         text data in AVI files.
  367.  
  368. VBCAPTST        Sample capture application implemented 
  369.         using Visual Basic      and the CAPWNDX.VBX 
  370.         custom control.
  371.  
  372. VBMCITST        Sample playback application implemented 
  373.         using Visual Basic      and the MCIWNDX.VBX
  374.         custom control.
  375.  
  376. WAVEFILE        Sample AVIFile file handler for waveform
  377.         audio files. 
  378.  
  379. WRITEAVI        Example showing how to use the AVIFILE 
  380.         interface to write files such as those 
  381.         that AVIView reads.
  382.  
  383.  
  384. 3. ONLINE DOCUMENTATION
  385. =======================
  386.  
  387. Programming documentation for the development kit is
  388. provided in a Microsoft Multimedia Viewer title, the 
  389. Programmer's Guide.
  390.  
  391. The Setup routine for the development kit installs an icon
  392. for this title in Program Manager, in the Video for Windows
  393. 1.1 DK group. For information on browsing the titles, 
  394. see the following sections.
  395.  
  396. Navigating Through the Table of Contents
  397. ----------------------------------------
  398. At any time, you can return to the opening screen: just
  399. choose the Contents button.
  400.  
  401. From the opening screen, click on one of the headings 
  402. to display a table of contents for that topic.
  403.  
  404. From the topic table of contents, click a name 
  405. to display a list of subtopics. Then click
  406. on a subtopic name to display the information.
  407.  
  408. To move up one level in the hierarchy, choose the Up
  409. button.
  410.  
  411. Navigating Among Topics 
  412. -----------------------
  413. To move from topic to topic, choose the browse left << and
  414. browse right >> buttons.
  415.  
  416. To display a list of related topics, choose the See Also
  417. button. Then, click a topic name to jump to that topic.
  418.  
  419. To return to the last topic viewed, choose the Go Back
  420. button.
  421.  
  422. To display a list of topics viewed, choose the History
  423. button. You can double-click a topic name to jump to that
  424. topic.
  425.  
  426. Displaying an Index of API Elements
  427. -----------------------------------
  428. To display a list of all functions, messages, and data 
  429. structures, choose the Index button. To jump to the topic,
  430. double-click the API element name. You can scroll the API
  431. list or type a partial API name in the dialog box.
  432.  
  433. Searching the Title
  434. -------------------
  435. To perform a full-text search on the title, use the
  436. following procedure:
  437.  
  438. 1. Choose the Search button.
  439.  
  440. 2. In Search by Word, type the word or phrase you're
  441.    looking for.
  442.  
  443.    For information on using wildcards, Boolean operators,
  444.    and phrases, choose the Hints button.
  445.  
  446. 3. Choose OK.
  447.  
  448. 4. A Search Results window is displayed listing the results
  449.    of the search. To jump to a found topic, select the 
  450.    topic name, then choose the Go To button.
  451.  
  452.  
  453. 4. USING AUDIO COMPRESSION MANAGER HELP TOPICS
  454. ==============================================
  455. Setup installs the Audio Compression Manager help files
  456. in the ACMHELP directory. The help project file is 
  457. ACMHELP.HPJ, and the RTF source files are ACMHELP.RTF, 
  458. FILTSRC.RTF, and CHOOSSRC.RTF. The ACMHELP.RTF file 
  459. contains information on using the help topics. The 
  460. FILTSRC.RTF and CHOOSSRC.RTF files contain the help 
  461. information for the filter and chooser topics.
  462.  
  463. You can use the RTF help topics in your application's help
  464. file. For example, you could include the three RTF files
  465. under the [FILES] entry in your application's help project
  466. file. That way, ACM help topics will be built into your
  467. application's help file when you compile it.   
  468.  
  469. 5. VIDTEST APPLICATION
  470. ======================
  471.  
  472. The Samples disc includes a multimedia performance testing
  473. application called VidTest. You can use VidTest to test the
  474. performance of multimedia components on your system, 
  475. including the CD-ROM drive, audio hardware, and video
  476. hardware. To allow your customers to obtain useful metrics
  477. on the performance of their multimedia systems, you can 
  478. distribute the VidTest application with your product. 
  479.  
  480. VidTest only works with this version (1.1) of Video for
  481. Windows. It does not work with Video for Windows 1.0.
  482.  
  483.  
  484. LOCATION OF VIDTEST
  485. -------------------
  486. VidTest is located on the Video for Windows Samples disc, 
  487. in the \VIDTEST directory. The application includes a set
  488. of sample AVI and files which are stored in the same
  489. directory.
  490.  
  491.  
  492. RUNNING VIDTEST
  493. ---------------
  494. You can run VidTest directly from the Samples disc. Use 
  495. Program Manager or File Manager to start VIDTEST.EXE from
  496. the \VIDTEST directory. For information on using the
  497. application, choose the Help button.
  498.  
  499.  
  500. DISTRIBUTING VIDTEST
  501. --------------------
  502. If you distribute VidTest with your product, you can use
  503. one of the following setup options:
  504.  
  505. * You can leave VidTest (and the its sample files)
  506.   on your distribution disc. Your users can run VidTest
  507.   directly from the disc, in the same way you can run 
  508.   VidTest from the Video for Windows samples disc.
  509.  
  510. * You can install VidTest (and, optionally, the 
  511.   accompanying sample files) on your user's system.
  512.  
  513.  
  514. Leaving VidTest on the Distribution Disc
  515. ----------------------------------------
  516. With this option, you must create a directory on your 
  517. distribution disc containing the same set of files 
  518. stored in the \VIDTEST directory on the Video for Windows
  519. sample disc. No further modifications are needed.
  520.  
  521.  
  522. Installing VidTest on the User's System
  523. ---------------------------------------
  524. If you install VidTest on your user's system, you must make
  525. the necessary changes to your Setup routine to install the
  526. files. You can install the complete set of VidTest files 
  527. on the user's system, or you can just install the following
  528. files:
  529.  
  530. * VIDTEST.EXE
  531. * VIDTEST.HLP
  532. * PERFTEST.DLL
  533. * VIDTEST.INI
  534.  
  535. In either case, you must make the following changes to the
  536. VIDTEST.INI file:
  537.  
  538. * In the VOLUMELABLE= entry, enter the label of the disk on
  539.   which the sample AVI and WAV files are stored.
  540.  
  541. * In the VOLUMENAME= entry, enter the name of the disc.
  542.   This text is displayed in a prompt if VidTest fails to 
  543.   find the specified disc.
  544.  
  545. * In the file= entries (rlefile=, msvc8file=, msvc16file=,
  546.   indeofile=, and cinepakfile=), change the value to 
  547.   specify the full path name (without the drive letter) for
  548.   the sample AVI files used with VidTest. For example, if 
  549.   you place the VidTest samples in a TESTFILE directory, 
  550.   your RLEFILE= entry would read as follows:
  551.  
  552.   rlefile=\testfile\rlefile.avi
  553.  
  554. When searching for the VIDTEST.INI file, VidTest first 
  555. looks in the directory containing VIDTEST.EXE. If the
  556. VIDTEST.INI file is not there, VidTest looks in the Windows
  557. directory. You should install VIDTEST.INI in the same 
  558. directory as VIDTEST.EXE.
  559.  
  560.  
  561. 6. DISTRIBUTION OF RUNTIME FILES
  562. ================================
  563.  
  564. The RUNTIME directory on the Video for Windows development
  565. kit CD contains the complete Video for Windows runtime
  566. files. You may distribute the runtime files with your 
  567. product. 
  568.  
  569.  
  570. CONTENTS OF THE RUNTIME DIRECTORY
  571. ---------------------------------
  572.  
  573. The RUNTIME directory contains the following subdirectories:
  574.  
  575. Subdirectory    Description
  576. ------------    -------------------------------------------
  577. DISKS           Contains disk images of the runtime files.
  578.         The DISKS subdirectory contains USA, FRN, 
  579.         and GER subdirectories containing the 
  580.         English, French, and German versions of
  581.         the runtime files. 
  582.         
  583.  
  584. SETUPSRC        Contains the source files for the runtime
  585.         setup application. Using the Setup Toolkit
  586.         included with the Microsoft Windows 
  587.         Software Development Kit, you can modify 
  588.         these source files to customize Setup to
  589.         install your own product along with the 
  590.         Video for Windows runtime.
  591.  
  592.  
  593. USING THE DISK IMAGES
  594. ---------------------
  595.  
  596. You can use the disk images in the DISKS subdirectory to
  597. create a Video for Windows setup disk to distribute with
  598. your product. Simply copy the contents of the appropriate
  599. DISK1 subdirectory to your Video for Windows setup disk. 
  600.  
  601.  
  602. CUSTOMIZING THE RUNTIME SETUP PROGRAM
  603. -------------------------------------
  604.  
  605. The SETUPSRC directory contains the source files for the
  606. Video for Windows Setup program. Using the Setup Toolkit
  607. included with the Microsoft Windows 3.1 SDK, you can modify
  608. the Setup script and layout to accommodate your own 
  609. product files. For example, you can create an integrated
  610. Setup program that installs  your hardware specific drivers
  611. along with the Video for Windows files. To customize Setup,
  612. you must become familiar with the Setup Toolkit; for 
  613. additional information, see the Setup Toolkit for Windows 
  614. manual in the Windows 3.1 SDK. The SETUPSRC directory 
  615. contains the following items:
  616.  
  617. Contents        Description
  618. --------        -----------
  619. MKRTIME.BAT     Batch file that compresses all files and 
  620.         creates a series of disk images in the 
  621.         DISKS subdirectory. Before running 
  622.         MKRTIME.BAT, you must follow the 
  623.         procedure described later in this section.
  624.  
  625. FILES           Subdirectory containing the uncompressed 
  626.         Video for Windows files. Add your own files 
  627.         to this subdirectory.
  628.  
  629. LAYOUT          Subdirectory containing the SETUP.LYT 
  630.         file. This file describes the attributes 
  631.         of the files stored in the FILES
  632.         subdirectory. The disk-layout utility
  633.         included with the Setup Toolkit uses this
  634.         file. For each file you add to the FILES 
  635.         subdirectory you must make a corresponding 
  636.         entry in the SETUP.LYT file. For 
  637.         information on layout files, see the 
  638.         documentation for the Setup Toolkit.
  639.  
  640. SCRIPT          Subdirectory containing the setup script
  641.         file SETUP.MST. If you add files to the
  642.         FILES subdirectory, use the SETUP.MST file
  643.         to tell Setup when and where to copy the
  644.         files on the end user's machine (using the 
  645.         AddSectionFilesToCopyList function). The 
  646.         SETUP.MST file also tells SETUP what 
  647.         changes (if any) to make to the WIN.INI 
  648.         and SYSTEM.INI files.
  649.  
  650. To customize a Setup script:
  651.  
  652. 1. Obtain the Setup Toolkit and read the accompanying
  653.    documentation. Make sure that both DSKLAYT.EXE and
  654.    DSKLAYT2.EXE are in your path.
  655.  
  656. 2. Use the MS-DOS XCOPY command to copy the SETUPSRC
  657.    directory and all its subdirectories to your hard disk.
  658.     
  659. 3. Copy your product files to the FILES subdirectory. The
  660.    Video for Windows runtime files are already in this
  661.    subdirectory.
  662.  
  663. 4. Run the DSKLAYT.EXE program and load the SETUP.LYT file
  664.    from the LAYOUT subdirectory. Enter in the Source
  665.    Directory dialog box the full path to location of your 
  666.    files. Then add entries for your product files by
  667.    selecting filenames from the Source Directory list and
  668.    selecting other options from lists in the dialog box.
  669.  
  670. 5. If necessary, modify the setup script file stored in
  671.    the SCRIPT subdirectory. 
  672.  
  673. 6. Run MKRTIME.BAT. This batch file compresses the files in
  674.    the FILES subdirectory and creates a COMP temporary 
  675.    directory with the compressed files and a DISK directory
  676.    containing the disk images. 
  677.  
  678. Once you've finished editing your setup script, test it
  679. thoroughly, varying the installation options and system
  680. configurations. You can verify results of the setup by
  681. examining contents of the target directories for a 
  682. correct set of files (with correct date and time stamps)
  683. and by checking the WIN.INI and SYSTEM.INI files for
  684. correct alterations.
  685.  
  686. After you successfully complete your tests, create your
  687. master disks by copying the disk images to floppy disks.
  688.  
  689. 7. DISTRIBUTION OF THIRD-PARTY FILES
  690. ====================================
  691.  
  692. The MISC directory of the Video for Windows Development
  693. Kit contains the Panasonic laser disc driver MCIPANAS.DRV.
  694. Panasonic developed and provided this driver for use with
  695. this version of the Development Kit.  For support or
  696. distribution rights to the driver, please contact:
  697.  
  698. Panasonic Technical Support:
  699. 201-392-4357
  700. Outside of New Jersey:  1-800-524-1448
  701. Inside of New Jersey:   1-800-624-1746
  702.  
  703. The MISC directory contains the following Gold Disk file
  704. handlers: AWMFILE.DLL, AWMFILE.REG, AWMFILE2.DLL,
  705. AWMFILE3.TSK. Gold Disk developed and provided these files
  706. for use with this version of the Development Kit. Please 
  707. see the GOLDDISK.TXT for specific licensing information.
  708. For support or distribution rights to the driver, please
  709. contact:
  710.  
  711. Gold Disk Technical Support:
  712. 905-602-5292
  713. 5155 Spectrum Way
  714. Building 5
  715. Mississauga, ON L4W5A1
  716.  
  717.  
  718. 8. KNOWN PROBLEMS OR ERRORS 
  719. ===========================
  720.  
  721. 1. If you send data through the wave mapper with a mapped
  722.    format and with looping enabled, the looping is still
  723.    ignored.
  724.  
  725. 2. This version of the Video for Windows Development Kit
  726.    includes IMA ADPCM codec version 2.2. Although waveform 
  727.    audio files created with previous versions of Microsoft's
  728.    IMA ADPCM codec will be recognized by this new release, 
  729.    the decompression of older files will not be performed 
  730.    correctly. A common symptom of an incompatible waveform 
  731.    audio file is a "popping" sound during playback. If you 
  732.    notice the "popping" sound during playback, please 
  733.    recompress the original uncompressed source file with 
  734.    this new release of the IMA ADPCM codec.
  735.  
  736. 3. In the sample code found in the ACMAPP example, 
  737.    there is a discrepancy between the user interface
  738.    and the code to implement these features. The dialog 
  739.    box for the ACM Drivers command on the View menu does 
  740.    not implement the Filters button correctly. Also, the 
  741.    dialog box for Formats does not implement the Details
  742.    button correctly.
  743.  
  744. 4. Versions of ATI's video accelerator prior to 2.1 do not
  745.    work well with Video for Windows version 1.1. Installing 
  746.    the accelerator software after installing Video for 
  747.    Windows can overwrite Video for Windows version 1.1 
  748.    components with components from the previous version.
  749.    Avoid installing any version of the video accelerator 
  750.    unless it is specifically noted to be compatible 
  751.    with Video for Windows version 1.1.
  752.  
  753.    The vidc.rlec=ativdacc.drv entry in the [installable 
  754.    compressors] section of the SYSTEM.INI file can cause
  755.    problems when playing large RLE-compressed movies. 
  756.    Remove this entry from the SYSTEM.INI file.
  757.  
  758.    For update drivers, contact ATI Technologies Inc.
  759.  
  760.  
  761. 9. UPDATES TO THE PROGRAMMER'S GUIDE
  762. ====================================
  763.  
  764. The following information updates the information in the 
  765. Video for Windows Programmer's Guide.
  766.  
  767. WORKING WITH THE DRAWDIB FUNCTIONS
  768. ----------------------------------
  769.  
  770. 1. DrawDibBegin/DrawDibEnd
  771.  
  772.    DrawDib changes the state of the DDF_ANIMATE flag only
  773.    if other parameters change for the DrawDibBegin 
  774.    function. To make sure that DrawDib uses the state you
  775.    want, reset the state of the DDF_ANIMATE flag with 
  776.    DrawDibEnd and use DrawDibBegin to specify the desired
  777.    state.
  778.  
  779. 2. DrawDibDraw
  780.  
  781.    When  you call DrawDibDraw, use the biSizeImage member 
  782.    of the BITMAPINFOHEADER structure to specify the number
  783.    of bytes contained in the image data pointed to by 
  784.    lpBits.
  785.  
  786.    If you open an old RLE file and get the first frame, 
  787.    it might be returned to you as RGB data and not RLE. 
  788.    This can be easily checked because the size of the 
  789.    frame will be equal to the width (DWORD aligned) 
  790.    times the height of the frame. When this happens, 
  791.    set the compression to 0 (RGB) before you draw it. 
  792.    All subsequent frames will be normal RLE frames.
  793.  
  794.    The DDF_KEYFRAME flag has not been implemented. Using
  795.    the DDF_NOTKEYFRAME is still recommended for drawing
  796.    nonkeyframes.
  797.  
  798. 3. DrawDibChangePalette
  799.  
  800.    If you have not specified DDF_ANIMATE in DrawDibBegin or 
  801.    DrawDibDraw prior to calling DrawDibChangePalette,  
  802.    DrawDibRealize or a re-draw doesn't change the color of
  803.    the bitmap. In this case, set the color table values 
  804.    from the values of the palette entry values used in 
  805.    DrawDibChangePalette. For example, if lppe is the
  806.    pointer to the PALETTEENTRY array containing the new
  807.    colors, and lpbi is the LPBITMAPINFOHEADER structure
  808.    used in the DrawDibBegin or DrawDibDraw, the following
  809.    fragment updates the DIB color table:
  810.  
  811.    //call to change color
  812.    DrawDibChangePalette(hDD, iStart, iLen, lppe);
  813.       
  814.    // Update DIB color table now
  815.    LPRGBQUAD lpColors = (LPRGBQUAD)((LPBYTE)lpbi 
  816.             + lpbi->biSize) ;
  817.    for (i = iStart ; i < iStart+iLen ; i++) {
  818.        lpColors[i].rgbRed   = lppe[i].peRed ;
  819.        lpColors[i].rgbGreen = lppe[i].peGreen ;
  820.        lpColors[i].rgbBlue  = lppe[i].peBlue ;
  821.    }
  822.  
  823. 4. DrawDibGetBuffer
  824.  
  825.    The DrawDibGetBuffer function returns a pointer to a
  826.    buffer if DrawDib is being used to draw compressed data.
  827.    For example, if drawing RGB DIBs, this function returns
  828.    NULL. Your application should always be prepared to
  829.    handle NULL returns from DrawDibGetBuffer. 
  830.  
  831. READING AND WRITING AVI FILES
  832. -----------------------------
  833.  
  834. 1. AVIFile/AVIStream Functions
  835.  
  836.    The AVIFile and AVIStream functions should have HRESULT
  837.    return values rather than LONG return values.
  838.  
  839. 2. AVIStreamGetFrame
  840.  
  841.    The buffer referenced by the pointer returned for
  842.    AVIStreamGetFrame should not be modified. This buffer 
  843.    is owned by AVIFile. 
  844.  
  845. 3. AVIStreamRead
  846.  
  847.    If the number of samples to read is specified as zero
  848.    for AVIStreamRead, it reads data until the buffer is
  849.    full.
  850.  
  851.    If the number of samples to read is specified as 
  852.    AVISTREAMREAD_CONVENIENT for AVIStreamRead, it reads
  853.    a convenient number of data samples. For example, it
  854.    reads until the end of a chunk in an interleaved file. 
  855.  
  856. 4. AVISTREAMINFO Flags
  857.  
  858.    The AVISF_DISABLED flag for the AVISTREAMINFO structure 
  859.    should be listed as AVISTREAMINFO_DISABLED.
  860.  
  861.    The AVISF_VIDEO_PALCHANGES flag for the AVISTREAMINFO 
  862.    structure should be listed as AVISTREAMINFO_FORMATCHANGES.
  863.  
  864. 5. AVIFILEINFO Flags
  865.  
  866.    The AVIF_ flags for the AVIFILEINFO structure should
  867.    be listed as AVIFILEINFO_ flags:
  868.  
  869.    AVIFILEINFO_HASINDEX
  870.    AVIFILEINFO_ISINTERLEAVED
  871.    AVIFILEINFO_MUSTUSEINDEX
  872.    AVIFILEINFO_WASCAPTUREFILE
  873.    AVIFILEINFO_COPYRIGHTED
  874.  
  875. WORKING WITH THE INSTALLABLE COMPRESSION MANAGER
  876. ------------------------------------------------
  877.  
  878. 1. ICInfo/ICGetInfo
  879.  
  880.    Use ICGetInfo to obtain complete information about
  881.    a compressor. ICInfo only returns basic information 
  882.    about a compressor.
  883.  
  884. WORKING WITH THE AUDIO COMPRESSION MANAGER
  885. ------------------------------------------
  886.  
  887. 1. acmFormatChoose/acmFilterChoose
  888.  
  889.    The following flags are not defined for acmFormatChoose
  890.    and acmFilterChoose:
  891.  
  892.    FORMATCHOOSE_FORMAT_ADD
  893.    FORMATCHOOSE_FORMATTAG_ADD
  894.    FILTERCHOOSE_FORMAT_ADD
  895.    FILTERCHOOSE_FORMATTAG_ADD
  896.  
  897. CONTROLLING MCI DEVICES USING THE MCIWND WINDOW CLASS
  898. -----------------------------------------------------
  899.  
  900. 1. MCIWndCan Macros
  901.  
  902.    The MCIWndCanConfig, MCIWndCanEject, MCIWndCanPlay, 
  903.    MCIWndCanRecord, MCIWndCanSave, and MCIWndCanWindow 
  904.    return type is BOOL rather than LRESULT.
  905.  
  906. 2. MCIWndCreate
  907.  
  908.    The MCIWndCreate macro also has the MCIWNDF_NOOPEN
  909.    style. This style creates a popup window that excludes
  910.    the open menu item.
  911.  
  912. 3. MCIWndGetMode
  913.  
  914.    The MCIWndGetMode macro can return the following MCI
  915.    modes: MCI_MODE_STOP, MCI_MODE_PAUSE, MCI_MODE_PLAY, 
  916.    MCI_MODE_OPEN, MCI_MODE_RECORD, and MCI_MODE_SEEK. 
  917.  
  918. 4. MCIWndOpenInterface
  919.  
  920.    The MCIWndOpenInterface macro opens a file or stream
  921.    interface.
  922.  
  923.    MCIWndOpenInterface(hwnd, pUnk)
  924.  
  925.    hwnd
  926.      Specifies a window handle.
  927.  
  928.    pUnk
  929.      Specifies a handle to a file or stream interface.
  930.  
  931.    This macro is defined using the MCIWNDM_OPENINTERFACE
  932.    message.
  933.  
  934. 5. MCIWndPutDest/MCIWndPutSource 
  935.  
  936.    The RECT argument for MCIWndPutDest and MCIWndPutSource
  937.    should be an LPRECT data type.
  938.  
  939. CAPTURING AVI FILES USING THE AVICAP WINDOW CLASS
  940. -------------------------------------------------
  941.  
  942. 1. Optimizing AVICap Performance
  943.  
  944.    The following fragment sets parameters for optimizing
  945.    AVICap performance. Capturing to extended memory
  946.    provides the best performance if the entire captured 
  947.    sequence can fit in memory. If the sequence will not 
  948.    fit in memory, capturing to disk using memory below 
  949.    1 megabyte gives better performance than capturing to 
  950.    disk using extended memory. 
  951.  
  952.    CAPTUREPARMS CapParms;
  953.    ... 
  954.    if (fCaptureToDisk) {
  955.       // Capture to disk
  956.       // Writes from DOS memory give the best disk 
  957.       // performance. So attempt to use 10 buffers 
  958.       // below 1 megabyte.
  959.       // If DOS buffers are unavailable, AVICAP 
  960.       // automatically attempts to allocate 10 buffers from
  961.       // extended memory. Only if zero buffers are
  962.       // allocated, will the capture abort.
  963.       CapParms.wNumVideoBuffers = 10;
  964.       CapParms.fUsingDOSMemory = TRUE;
  965.    } else {
  966.       // Capture to Memory
  967.       // Try to allocate 1000 buffers above 1 megabyte.
  968.       // The actual number of buffers allocated will
  969.       // depend on available physical memory.
  970.       // Only if zero buffers are allocated,
  971.       // will the capture abort.
  972.       CapParms.wNumVideoBuffers = 1000;
  973.       CapParms.fUsingDOSMemory = FALSE;
  974.    }
  975.  
  976. 2. CAPDRIVERCAPS 
  977.  
  978.    The CAPDRIVERCAPS data structure has the following 
  979.    additional members:
  980.  
  981.    HVIDEO  hVideoIn;         // Driver In channel
  982.    HVIDEO  hVideoOut;        // Driver Out channel
  983.    HVIDEO  hVideoExtIn;      // Driver Ext. In channel
  984.    HVIDEO  hVideoExtOut;     // Driver Ext. Out channel
  985.  
  986.   Existing programs do not need to be recompiled for this 
  987.   expanded structure.  
  988.  
  989.  
  990. 3. CAPTUREPARMS
  991.  
  992.    The CAPTUREPARMS structure has the following additional
  993.    members:
  994.  
  995.    DWORD dwAudioBufferSize;   // Size of audio buffers 
  996.                   // (0 = default)
  997.    BOOL  fDisableWriteCache;  // Attempt to disable write
  998.                   // cache
  999.  
  1000.    Existing programs do not need to be recompiled for this 
  1001.    expanded structure.  
  1002.  
  1003.    The default value for the fUsingDOSMemory member of the
  1004.    CAPTUREPARMS data structure has been changed to FALSE.
  1005.  
  1006. 5. videoGetErrorText
  1007.  
  1008.    If the wSize parameter is zero, videoGetErrorText
  1009.    returns DV_ERR_SIZEFIELD and nothing is copied to the
  1010.    return buffer.
  1011.  
  1012. 6. capGetMCIDevice
  1013.  
  1014.    The capGetMCIDevice reference in the AVI Capture Macros
  1015.    reference table should be capGetMCIDeviceName.
  1016.  
  1017. PLAYING AVI FILES USING MCI
  1018. ---------------------------
  1019.  
  1020. 1. Dialog Box for the Configure String Command.
  1021.  
  1022.    The Don't Buffer Offscreen checkbox has been removed
  1023.    from the Configure dialog box.
  1024.  
  1025. MCI VCR SERVICES
  1026. ----------------
  1027.  
  1028. 1. Enabling and Disabling Tracks with the VISCA Driver
  1029.  
  1030.    When operating in insert mode, the VISCA device driver
  1031.    cannot turn tracks on or off individually. It sets 
  1032.    both the video and audio tracks in combination
  1033.    simultaneously. To change the setting of both the audio
  1034.    and video tracks in the insert mode, use the SETAUDIO 
  1035.    command immediately followed by the SETVIDEO command. 
  1036.    An error message will result from the first command 
  1037.    which you can ignore. The VISCA driver changes both
  1038.    tracks to their new state when it receives the second
  1039.    command.
  1040.  
  1041. 2. MCI VCR String Command Reference
  1042.  
  1043.    Change the "set pause (timeout)" command to 
  1044.    "set pause timeout (timeout)".
  1045.  
  1046.    The references to "status clock increment rate" should 
  1047.    be "capability clock increment rate".
  1048.  
  1049. MULTIMEDIA COMPRESSION, DECOMPRESSION, AND RENDERING DRIVERS
  1050. ------------------------------------------------------------
  1051.  
  1052. 1. ICM Draw Handlers
  1053.  
  1054.    Returning a value other than ICERR_OK for the 
  1055.    ICM_DRAW_WINDOW message in a draw handler prevents 
  1056.    subsequent ICM_DRAW_WINDOW messages from being sent to
  1057.    a draw handler. In this case, moving a playback window
  1058.    will not update the window.
  1059.  
  1060.